#pragma once
#ifndef PARTICLESIGNALKEY_H
#define PARTICLESIGNALKEY_H

#include "ParticleBase.h"
#include "PropertyAdhesions.h"

namespace ParticleEngine
{
	class ParticleSignalKey : public ParticleBase
	{
	public:
		ParticleSignalKey(ParticleContext& NewContext);
		~ParticleSignalKey();

		virtual ColorRGBA<unsigned char> GetColor();

		virtual void Sole();
		virtual void InteractionIndividual(ParticleBase*const Other, Vec<2, float>& Space, const float& DistanceSquared);

		virtual void SaveIndividual(std::ofstream& Strm);
		virtual void LoadIndividual(std::ifstream& Strm);

		virtual PropertyContent *HasHeat(){return& Heat;};
		PropertyContent Heat;

		virtual PropertySignal* HasSignal0(){ return& Signal0; };
		PropertySignal Signal0;
		virtual PropertySignal* HasSignal1(){ return& Signal1; };
		PropertySignal Signal1;

		size_t KeyCode;

		static const DescriptorParticle Descriptor;
	};
}

#endif